/*购物车相关*/

$(function() {
	/* 初始化 */	
	if($(".table tbody tr").length==0){	
		//禁用全选
		$(".check_all").prop("disabled", true);
		$("#submitOrder").hide();
		$(".clear").hide();	
	}else{
		//购物车中有数据
		//默认全部选中，并计算总价
		$(".check_all").prop("enabled", true);
		$(".check_all").prop("checked",true);	
		$(".check_one").prop("checked", true);
		$(".clear").show();
		
		// 计算总价
		getTotal();
	}

	/* 全选 */
	$(".check_all").change(function() {
		/* 取得当前全选复选框状态 */
		var flag = $(this).prop("checked");
		$(".check_one").prop("checked", flag);
		$(".check_all").prop("checked", flag);

		// 计算总价
		getTotal();
	});

	/* 行复选框变化 */
	$(".check_one").change(function() {
		if (!$(this).prop("checked")) {
			$(".check_all").prop("checked", false);
		} else {
			/* 判断所有兄弟节点是否都选中 */
			var flag = true;
			$(".check_one").each(function() {
				if (!$(this).prop("checked")) {
					flag = false;
				}
			});
			$(".check_all").prop("checked", flag);
		}
		// 计算总价
		getTotal();
	});

	/* 计算总价 */
	function getTotal() {
		var tnumber = 0;
		var tprice = 0.00;		
		$(".check_one").each(
				function() {
					if ($(this).prop("checked")) {
						var number = $(this).parent().nextAll().eq(2).children(
								"div").children(".number").val();
						var price = $(this).parent().nextAll().eq(3).children(
								".price").text();
						// 计算总量
						tnumber += parseInt(number);
						// 计算合计
						tprice += parseFloat(price) * parseInt(number);
					}
		 });		
		// 显示
		$(".pp").text(tnumber);
		$(".pm").text(tprice.toFixed(2));
		//控制结算按钮
		if (parseFloat(tprice) > 0) {
			$("#submitOrder").show();
		} else {
			$("#submitOrder").hide();
		}
	}


	/* 删除行 */
	$(".del").click(function() {		
		if (confirm("确定要删除选择的商品？")){ 
		var obj = $(this).parent().parent();
		// 找到所在行的productid
		var productid = $(this).parent().children(":hidden").val();
		// Ajax请求
		var reqUrl = "/b2c/delItem.do";
		$.ajax({
			type : "POST",
			url : reqUrl,
			dataType : "json",
			data : "id=" + productid,
			success : function(msg) {			
				var remsg="";
				// 返回数据是json[object object]，用 each解析
				$.each(msg, function(index) {
					remsg = msg[index];
				});				
			
				if (remsg == "success") {
					// 请求服务器ajax,完成后，移除行
					$(obj).remove();
					//判断所有check_one节点是否都选中
					var flag = true;
					$(".check_one").each(function() {
						if (!$(this).prop("checked")) {
							flag = false;
						}
					});
					$(".check_all").prop("checked", flag);					
					//判断是否移除完所有行
					if($(".table tbody tr").length==0){						
                        //禁用并取消全选
						$(".check_all").prop("disabled", true);		
						$(".check_all").prop("checked",false);			                		
                        $(".clear").hide();
					}					
					// 计算总价
					getTotal();
				}
			},
			error : function() {
				alert('服务器出错，请稍后再试！');
			}
		});
		}
	});
	
	/* 增加数量 */
	$(".plus").click(
			function() {				
				// 原单价
				var price = $(this).parent().parent().next().children(".price").text();
				/* 累加数量 : 最大实际应为小于库存量*/
				$(this).prev(".number").val(parseInt($(this).prev(".number").val()) + 1);
				// 算小计
				var total = parseInt($(this).prev(".number").val())
						* parseFloat(price);
				// 显示新的小计
				$(this).parent().parent().nextAll().eq(1).children(".total").text(total.toFixed(2));
				if (parseInt($(this).prev(".number").val()) > 1) {
					/* 显示减号 */
					$(this).prev(".number").prev("a").show();
				}				
				// 计算总价
				getTotal();
	 });

	/* 减少数量 */
	$(".reduce").click(
			function() {
				//最少数量为1
				if (parseInt($(this).next(".number").val()) == 1) {
					/* 隐藏减号 */
					$(this).hide();
					return;
				}		
				if ($(this).next(".number").val() > 1) {
					// 原单价
					var price = $(this).parent().parent().next().children(".price").text();
					//累减数量
					$(this).next(".number").val(parseInt($(this).next(".number").val()) - 1);
					/* 算小计 */					
					var total = parseInt($(this).next(".number").val())
							* parseFloat(price);
					// 显示新的小计
					$(this).parent().parent().nextAll().eq(1).children(".total").text(total.toFixed(2));					
					if (parseInt($(this).next(".number").val()) == 1) {
						/* 隐藏减号 */
						$(this).hide();
					}
				}				
				// 计算总价
				getTotal();
			});
	
		 /*数量文本框内容改变*/
	    $(".number").change(function () {
	        if($.isNumeric($(this).val())){  /*判断是否是数字*/
	            var num =Math.round($(this).val());    //四舍五入
	            if(num>100000)//实际应为小于库存量
	            	num=100000;
	            
	            if(num<=1){
	            	$(this).val(1);
	            	$(this).prev(".reduce").hide();
	            } else{//大于1
	            	$(this).val(num);
	            	$(this).prev(".reduce").show();
	            	$(this).next(".plus").show();
	            }
	        }else{
	            $(this).val(1);
	            $(this).prev(".reduce").hide();
	        }	     
	        // 原单价
			var price = $(this).parent().parent().next().children(".price").text();
			 /*算小计*/
	        var total = parseInt($(this).val()) * parseFloat(price);
	        // 显示新的小计
			$(this).parent().parent().nextAll().eq(1).children(".total").text(total.toFixed(2));
	
	        //计算总价
	        getTotal();
	    });

	    
	    
	    
	    /*清空购物车*/
		$("#clearcart").click(function() {
			//隐藏模态框
			$('#myModal').modal('hide');
			
			// Ajax请求
			var reqUrl = "/b2c/clearCart.do";
			$.ajax({
				type : "POST",
				url : reqUrl,
				dataType : "json",
				data : null,
				success : function(msg) {
					var remsg = "";
					// 返回数据是json[object object]，用 each解析
					$.each(msg, function(index) {
						remsg = msg[index];
					});									
					if (remsg == "success") {
						// 请求服务器ajax,完成后，移除表格中所有行
						$(".table tbody tr").remove();			
						//判断是否移除完所有行
						if($(".table tbody tr").length==0){						
	                        //禁用并取消全选
							$(".check_all").prop("disabled", true);		
							$(".check_all").prop("checked",false);			                		
	                        $(".clear").hide();
						}
						// 计算总价
						getTotal();						
					}
				},
				error : function() {
					alert('服务器出错，请稍后再试！');
				}
		});			
	});
		
	/*结算生成订单*/
	$("#submitOrder").click(function() {			
		
		/* 判断所有check_one节点是否有选中 */	
		var submitData="[";
		$(".check_one").each(function() {
			if ($(this).prop("checked")) {				
			 //取得check_one节点所在行的商品Id、数量、合计，生成 json数据提交至服务器
			 var num =	$(this).parent().nextAll().eq(2).children(".ps").children(".number").val();
			 var total = $(this).parent().nextAll().eq(4).children(".total").text();
			 var productid = $(this).next("#pid").val();	 
			 submitData+= "{'productid':'"+productid+"','num':'"+num+"','total':'"+total+"'}";			 
     		 //alert("选择行，商品Id="+productid +" 数量="+num+" 合计="+total);			 
			}
		});
		submitData+="]";		
		
		// Ajax请求
		var reqUrl = "/b2c/order.do"; 
			$.ajax({
				type : "POST",
				url : reqUrl,
				dataType : "json",
				data : "data=" + submitData,
				success : function(msg) {
					var remsg = "";
					// 返回数据是json[object object]，用 each解析
					$.each(msg, function(index) {
						remsg = msg[index];
					});							
					if (remsg == "success") {
						// 成功
						location.href="/b2c/view/order.jsp";
					}else if(remsg == "usernull"){
						alert("您还未登录，请先登录！");
						location.href="/b2c/view/login.html";
					}
					else if(remsg == "cartnull"){
						alert("购物车为空，请选购商品！");
						location.href="/b2c/index.do";						
					}else{
						$("#errors").text("服务器出错，结算失败！");		
						alert("结算失败！请稍后再试！");
					}
				},
				error : function() {
					alert('服务器出错，请稍后再试！');
				}
		});		
	});		
	    
	
	/*轮播（Carousel）间隔时间设置为2s*/
	$('.carousel').carousel({
		  interval: 2000
		});
	 
});

/* 添加商品至购物车 */
function addCart(id,btn){
	var reqUrl = "/b2c/addCart.do";
	// Ajax请求
	$.ajax({
		   type: "POST",
		   url:  reqUrl,
			dataType:"json",
		   data: "productId="+id,
		   success: function(msg){		
				var remsg = "";			
				//返回数据是json[object object]，用 each解析
				$.each(msg,function(index) {
					remsg = msg[index];
				});						
			   if(remsg.indexOf("success") != -1){	   
				   $(function () {
					   $(btn).popover('show');});					   
				   		//1秒后消失提示框
					    var id = setTimeout(
					        function () {
					        	  $(btn).popover('hide');					            
					        }, 1000);		
				    
				    //更新显示购物车中实时数量
				    $("#cart").text(remsg.split(",")[1]);
			   
			   }else{
				   alert('服务器出错，请稍后再试！');
			   }					   
		   }
	}); 			
}

/*前台注销*/
function logout(){
	window.location.href="/b2c/logout.do"
}
